package com.qnnu.studenttravelsystem.controller;


import com.qnnu.studenttravelsystem.context.UserContext;
import com.qnnu.studenttravelsystem.entity.ClassInfo;
import com.qnnu.studenttravelsystem.service.IClassInfoService;
import com.qnnu.studenttravelsystem.service.ICounselorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 班级控制器 —— 相当于“收银员”
 *
 * 原理：
 * - 收银员不关心顾客是谁，只看保安给的便签
 * - 便签上写着用户ID，直接查对应班级
 * - 完全不用前端传ID，防止越权！
 */
@RestController
@RequestMapping("/api/class")
public class ClassInfoController {
    @Autowired
    private IClassInfoService classInfoService;

    /**
     * 查询当前辅导员的班级列表
     *
     * 安全设计：
     * - 不接收任何ID参数
     * - 从便签(UserContext)中取当前用户ID
     */
    @GetMapping("/list")
    public List<ClassInfo> list() {
        // 看保安给的便签：当前用户是谁
        Long counselorId = UserContext.getCurrentUserId();
        // 只查这个辅导员的班级
        return classInfoService.findByCounselorId(counselorId);
    }
}
